package com.hsu.yupao.model.vo;

import lombok.Data;

import java.io.Serializable;

/**
 * 聊天消息视图对象，用于展示聊天消息。
 * @ClassName: MessageVO
 * @author Hsu琛君珩
 * @date 2024-06-03
 * @apiNote
 * @Version: v1.0
 */
@Data
public class MessageVO implements Serializable {

    private static final long serialVersionUID = 206696356563764875L;

    /**
     * 发送方用户的信息，包括ID、用户名、账号和头像URL。
     */
    private WebSocketVO formUser;

    /**
     * 接收方用户的信息，对于群聊或大厅聊天，这个字段可能为空。
     */
    private WebSocketVO toUser;

    /**
     * 消息所属的队伍ID，对于非队伍聊天的场景（如私聊或大厅聊天），这个字段可能为空。
     */
    private Long teamId;

    /**
     * 消息的文本内容。
     */
    private String text;

    /**
     * 标识这条消息是否由当前登录用户发送，用于前端显示消息的方向。
     */
    private Boolean isMy = false;

    /**
     * 消息的类型，如私聊、群聊或大厅聊天等。
     */
    private Integer chatType;

    /**
     * 标识发送方用户是否具有管理员权限或特殊状态，用于某些应用场景（如队伍聊天）。
     */
    private Boolean isAdmin = false;

    /**
     * 消息创建时间，通常为格式化的字符串以方便前端展示。
     */
    private String createTime;

}
